Imports System.Data.SqlClient
Imports System.Xml

Public Class dFacturaCompra
    Public Function Existe(ByVal numero As String, ByVal CodigoProv As Integer) As Boolean
        Dim Parametros As ArrayList = New ArrayList
        If numero <> "" Then
            Parametros.Add(New SqlParameter("@pEnumero", numero))
        End If
        If CodigoProv <> 0 Then
            Parametros.Add(New SqlParameter("@pECodigoProv", CodigoProv))
        End If
        Return (CapaDeDatos.dConexion.Consultar("STORE_TblFacturaCompraBUSCARFILTRADO", Parametros).Tables(0).Rows.Count <> 0)
    End Function
    Public Function Insertar(ByVal CodigoProv As Integer, ByVal Numero As String, ByVal Estado As String, _
    ByVal Total As Double, ByVal Iva As Double, ByVal IdCondCompra As String, ByVal Observacion As String) As Integer
        Dim Parametros As ArrayList = New ArrayList

        If CodigoProv <> 0 Then
            Parametros.Add(New SqlParameter("@pECodigoProv", CodigoProv))
        End If
        If Numero <> "" Then
            Parametros.Add(New SqlParameter("@pENumero", Numero))
        End If
        If Estado <> "" Then
            Parametros.Add(New SqlParameter("@pEEstado", Estado))
        End If
        If Total <> 0 Then
            Parametros.Add(New SqlParameter("@pETotal", CDbl(Total)))
        End If
        If Iva <> 0 Then
            Parametros.Add(New SqlParameter("@pEIva", CDbl(Iva)))
        End If
        If IdCondCompra <> "" Then
            Parametros.Add(New SqlParameter("@pEIdCondCompra", IdCondCompra))
        End If
        If Observacion <> "" Then
            Parametros.Add(New SqlParameter("@pEObservacion", Observacion))
        End If
        Return CapaDeDatos.dConexion.Consultar("STORE_TblFacturaCompraALTA", Parametros).Tables(0).Rows(0)("CodigoFactura").ToString()
    End Function
    Public Function Eliminar(ByVal CodigoFactura As String) As Boolean
        Dim Parametros As ArrayList = New ArrayList
        If CodigoFactura <> "" Then
            Parametros.Add(New SqlParameter("@pECodigoFactura", CodigoFactura))
        End If
        Return CapaDeDatos.dConexion.ABM("STORE_TblFacturaCompraELIMINAR", Parametros)
    End Function
    Public Function Modificar(ByVal CodigoFactura As String, ByVal CodigoProv As String, ByVal Numero As String, ByVal Estado As String, ByVal Total As String, ByVal Iva As String, ByVal IdCondCompra As String, ByVal Observacion As String) As Boolean
        Dim Parametros As ArrayList = New ArrayList
        If CodigoFactura <> "" Then
            Parametros.Add(New SqlParameter("@pECodigoFactura", CodigoFactura))
        End If
        If CodigoProv <> "" Then
            Parametros.Add(New SqlParameter("@pECodigoProv", CodigoProv))
        End If
        If Numero <> "" Then
            Parametros.Add(New SqlParameter("@pENumero", Numero))
        End If
        If Estado <> "" Then
            Parametros.Add(New SqlParameter("@pEEstado", Estado))
        End If
        If Total <> "" Then
            Parametros.Add(New SqlParameter("@pETotal", CDbl(Total)))
        End If
        If Iva <> "" Then
            Parametros.Add(New SqlParameter("@pEIva", CDbl(Iva)))
        End If
        If IdCondCompra <> "" Then
            Parametros.Add(New SqlParameter("@pEIdCondCompra", IdCondCompra))
        End If
        If Observacion <> "" Then
            Parametros.Add(New SqlParameter("@pEObservacion", Observacion))
        End If
        Return CapaDeDatos.dConexion.ABM("STORE_TblFacturaCompraMODIFICAR", Parametros)
    End Function
    Public Function BuscarFiltrado(ByVal CodigoFactura As Integer, ByVal CodigoProv As Integer, ByVal Numero As String, _
                                    ByVal Estado As String, ByVal Total As Integer, ByVal Iva As Integer, _
                                    ByVal IdCondCompra As String, ByVal Observacion As String) As DataSet
        Dim Parametros As ArrayList = New ArrayList
        If CodigoFactura <> 0 Then
            Parametros.Add(New SqlParameter("@pECodigoFactura", CodigoFactura))
        End If
        If CodigoProv <> 0 Then
            Parametros.Add(New SqlParameter("@pECodigoProv", CodigoProv))
        End If
        If Numero <> "" Then
            Parametros.Add(New SqlParameter("@pENumero", Numero))
        End If
        If Estado <> "" Then
            Parametros.Add(New SqlParameter("@pEEstado", Estado))
        End If
        If Total <> 0 Then
            Parametros.Add(New SqlParameter("@pETotal", Total))
        End If
        If Iva <> 0 Then
            Parametros.Add(New SqlParameter("@pEIva", Iva))
        End If
        If IdCondCompra <> "" Then
            Parametros.Add(New SqlParameter("@pEIdCondCompra", IdCondCompra))
        End If
        If Observacion <> "" Then
            Parametros.Add(New SqlParameter("@pEObservacion", Observacion))
        End If
        Return CapaDeDatos.dConexion.Consultar("STORE_TblFacturaCompraBUSCARFILTRADO", Parametros)
    End Function
    Public Function NumeroFactura(ByVal CodigoFactura As Integer) As String
        Dim Parametros As ArrayList = New ArrayList
        If CodigoFactura <> 0 Then
            Parametros.Add(New SqlParameter("@pECodigoFactura", CodigoFactura))
        End If
        Return CapaDeDatos.dConexion.Consultar("STORE_TblFacturaCompraBUSCARFILTRADO", Parametros).Tables(0).Rows(0)("Numero").ToString()
    End Function
End Class
